// 系统设置，公司信息
const db = require('../db/index'); 
const fs = require('fs');

// 上传轮播图图片, userInfo上传头像直接复制过来修改，2个参数  [set_value, set_name]
exports.uploadSwiper = (req,res) => { 
	// res.send(req.body)  // :data属性
	// {0:'l', 1:'j', 2:'s', 3:'z', 4:'l'} 用于拼接upload - data数据
	// let str = '';
	// for(let i = 0; i < 10; i++){
	// 	str += req.body[i]
	// }
  let oldName = req.files[0].filename
  let newName = Buffer.from(req.files[0].originalname,'latin1').toString('utf8')
  fs.renameSync('./public/upload/'+ oldName, './public/upload/'+ newName)
  const sql = "update setting set set_value = ? where set_name = ?"
  db.query(sql,[`http://127.0.0.1:3007/upload/${newName}`, req.body.name],(err,result) => {  // req.body.set_name 但是前端写的是{name:"swiper1"}
		// 注意：res是最外层的，result只在这一层
    if(err) return res.cc(err)  
    res.send({ 
      status: 0, // 返回状态码为0, 插入成功
      message: "上传轮播图成功"
    })
  })
}

// 获取所有轮播图
exports.getAllSwiper = (req, res) => {
	// like 匹配 字段是否符合 前缀为 ...
	const sql = "select set_value from setting where set_name like 'swiper%' "
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)
		if(result){
			let array = [] 
			result.forEach((e) => {  // 把set_value 放进数组
				array.push(e.set_value)
			})
			res.send(array)
		}else{
			res.send({
				status:1,
				message:'请添加轮播图'
			})
		}
	})
}

// 修改公司名字 参数 set_value
exports.changeCompanyName = (req, res) => {
	const sql = "update setting set set_value = ? where set_name = '公司名称' "
	db.query(sql, req.body.set_value, (err, result) => {
		if (err) return res.cc(err)
		res.send({
			status: 0,
			message: '修改公司成功'
		})
	})
}

// 获取公司名称 
exports.getCompanyName = (req, res) => {
	const sql = "select * from setting where set_name = '公司名称'"
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)
		if(result[0].set_value){
			res.send(result[0].set_value)
		}else{
			res.send({
				status:1,
				message:'请设置公司名称'
			})
		}
		
	})
}

// 编辑公司介绍的接口 参数 set_text set_name 包括公司架构，公司战略，公司高层
exports.changeCompanyIntroduce = (req, res) => {
	const sql = 'update setting set set_text = ? where set_name = ? '
	db.query(sql, [req.body.set_text, req.body.set_name], (err, result) => {
		if (err) return res.cc(err)
		res.send({
			status: 0,
			message: '修改公司介绍成功'
		})
	})
}

// 获取公司介绍 参数 set_name  包括公司架构，公司战略，公司高层
exports.getCompanyIntroduce = (req, res) => {
	const sql = 'select * from setting where set_name = ?'
	db.query(sql, req.body.set_name, (err, result) => {
		if (err) return res.cc(err)
		res.send(result[0].set_text)
		// res.send(result[0].set_text)
	})
}

// 获取所有公司信息  把 “现任高层” 改为 “公司高层”
exports.getAllCompanyIntroduce = (req, res) => {
	const sql = 'select * from setting where set_name like "公司%" '
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)
		// result = result.slice(1) // 去掉公司名称
		res.send(result)
	})
}

// -------------------------------------------------用户管理，创建管理员弹窗，系统设置页的其他设置
// 部门设置 需要传入一个数组 req.body.set_value 添加部门还是删减部门都用这个接口
exports.setDepartment = (req, res) => {
	const sql = 'update setting set set_value = ? where set_name = "部门设置" '
	db.query(sql, req.body.set_value, (err, result) => {
		if (err) return res.cc(err)
		res.send({
			status: 0,
			message: '部门设置成功'
		})
	})
}

// 获取部门，不需要传递
exports.getDepartment = (req, res) => {
	const sql = 'select set_value from setting where set_name = "部门设置"'
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)
		if(result[0].set_value){
			res.send(result[0].set_value)
		}else{
			res.send({
				status:1,
				message:'请设置公司部门'
			})
		}
	})
}

//产品设置 数组
exports.setProduct = (req, res) => {
	const sql = 'update setting set set_value = ? where set_name = "产品设置" '
	db.query(sql,req.body.set_value, (err, result) => {
		if (err) return res.cc(err)
		res.send({
			status: 0,
			message: '产品设置成功'
		})
	})
}

// 获取产品
exports.getProduct = (req, res) => {
	const sql = 'select set_value from setting where set_name = "产品设置"'
	db.query(sql, (err, result) => {
		if (err) return res.cc(err)	
		if(result[0].set_value){
			res.send(result[0].set_value)
		}else{
			res.send({
				status:1,
				message:'请设置产品种类'
			})
		}
	})
}



